package com.agri.dto;

import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 订单创建数据传输对象
 *
 * @author Agri-Fin-Sale Team
 * @since 2025-11-05
 */
@Data
public class OrderCreateDTO {
    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /**
     * 收货地址ID
     */
    @NotNull(message = "收货地址不能为空")
    private Long addressId;

    /**
     * 订单商品项列表
     */
    @NotEmpty(message = "订单商品不能为空")
    private List<OrderItemDTO> orderItems;

    /**
     * 订单备注
     */
    private String remark;

    /**
     * 支付方式：1-微信支付，2-支付宝，3-银行转账
     */
    @NotNull(message = "支付方式不能为空")
    private Integer paymentMethod;

    /**
     * 订单商品项DTO
     */
    @Data
    public static class OrderItemDTO {
        /**
         * 农产品ID
         */
        @NotNull(message = "商品ID不能为空")
        private Long cropId;

        /**
         * 商品数量
         */
        @NotNull(message = "商品数量不能为空")
        private Integer quantity;

        /**
         * 商品单价
         */
        @NotNull(message = "商品单价不能为空")
        private java.math.BigDecimal unitPrice;
    }
}